@@ -63,4 +63,4 @@ media/ |
||
| 63 | 63 |
collect_static/ |
| 64 | 64 |
|
| 65 | 65 |
# Special File |
| 66 |
-download.html |
|
| 66 |
+*download.html |
@@ -11,15 +11,20 @@ from utils.redis.rversion import delete_guest_entrance_control, set_guest_entran |
||
| 11 | 11 |
|
| 12 | 12 |
|
| 13 | 13 |
class LatestAppInfoAdmin(admin.ModelAdmin): |
| 14 |
- list_display = ('latest_version', 'latest_app', 'latest_url', 'status', 'created_at', 'updated_at')
|
|
| 14 |
+ list_display = ('latest_adr_version_code', 'latest_adr_version_name', 'latest_adr_app', 'latest_adr_url', 'latest_ios_version_code', 'latest_ios_version_name', 'latest_ios_url', 'status', 'created_at', 'updated_at')
|
|
| 15 | 15 |
|
| 16 | 16 |
def save_model(self, request, obj, form, change): |
| 17 | 17 |
obj.save() |
| 18 | 18 |
|
| 19 |
- # 更新下载页面 |
|
| 19 |
+ # 更新安卓下载页面 |
|
| 20 | 20 |
write_to_disk(render_to_string('page/download.tmpl.html', {
|
| 21 |
- 'version': obj.latest_version, |
|
| 22 |
- }), settings.DOWNLOAD_PAGE_PATH) |
|
| 21 |
+ 'version': obj.latest_adr_version_name, |
|
| 22 |
+ }), settings.DOWNLOAD_ADR_PAGE_PATH) |
|
| 23 |
+ |
|
| 24 |
+ # 更新 iOS 下载页面 |
|
| 25 |
+ write_to_disk(render_to_string('page/download.tmpl.html', {
|
|
| 26 |
+ 'version': obj.latest_ios_version_name, |
|
| 27 |
+ }), settings.DOWNLOAD_IOS_PAGE_PATH) |
|
| 23 | 28 |
|
| 24 | 29 |
# 设置最新 APP 信息 |
| 25 | 30 |
set_latest_app() |
@@ -0,0 +1,62 @@ |
||
| 1 |
+# -*- coding: utf-8 -*- |
|
| 2 |
+from __future__ import unicode_literals |
|
| 3 |
+ |
|
| 4 |
+from django.db import models, migrations |
|
| 5 |
+import operation.models |
|
| 6 |
+ |
|
| 7 |
+ |
|
| 8 |
+class Migration(migrations.Migration): |
|
| 9 |
+ |
|
| 10 |
+ dependencies = [ |
|
| 11 |
+ ('operation', '0004_guestentrancecontrolinfo'),
|
|
| 12 |
+ ] |
|
| 13 |
+ |
|
| 14 |
+ operations = [ |
|
| 15 |
+ migrations.RemoveField( |
|
| 16 |
+ model_name='latestappinfo', |
|
| 17 |
+ name='latest_app', |
|
| 18 |
+ ), |
|
| 19 |
+ migrations.RemoveField( |
|
| 20 |
+ model_name='latestappinfo', |
|
| 21 |
+ name='latest_url', |
|
| 22 |
+ ), |
|
| 23 |
+ migrations.RemoveField( |
|
| 24 |
+ model_name='latestappinfo', |
|
| 25 |
+ name='latest_version', |
|
| 26 |
+ ), |
|
| 27 |
+ migrations.AddField( |
|
| 28 |
+ model_name='latestappinfo', |
|
| 29 |
+ name='latest_adr_app', |
|
| 30 |
+ field=models.FileField(help_text='\u6700\u65b0\u7248\u5b89\u5353 APP', upload_to=operation.models.upload_path, null=True, verbose_name='latest_adr_app', blank=True), |
|
| 31 |
+ ), |
|
| 32 |
+ migrations.AddField( |
|
| 33 |
+ model_name='latestappinfo', |
|
| 34 |
+ name='latest_adr_url', |
|
| 35 |
+ field=models.URLField(help_text='\u6700\u65b0\u7248 APP \u94fe\u63a5', max_length=255, null=True, verbose_name='latest_adr_url', blank=True), |
|
| 36 |
+ ), |
|
| 37 |
+ migrations.AddField( |
|
| 38 |
+ model_name='latestappinfo', |
|
| 39 |
+ name='latest_adr_version_code', |
|
| 40 |
+ field=models.IntegerField(default=0, help_text='\u6700\u65b0\u5b89\u5353\u7248\u672c\u53f7', verbose_name='latest_adr_version_code'), |
|
| 41 |
+ ), |
|
| 42 |
+ migrations.AddField( |
|
| 43 |
+ model_name='latestappinfo', |
|
| 44 |
+ name='latest_adr_version_name', |
|
| 45 |
+ field=models.CharField(help_text='\u6700\u65b0\u5b89\u5353\u7248\u672c\u540d', max_length=255, null=True, verbose_name='latest_adr_version_name', blank=True), |
|
| 46 |
+ ), |
|
| 47 |
+ migrations.AddField( |
|
| 48 |
+ model_name='latestappinfo', |
|
| 49 |
+ name='latest_ios_url', |
|
| 50 |
+ field=models.URLField(help_text='\u6700\u65b0\u7248 iOS \u94fe\u63a5', max_length=255, null=True, verbose_name='latest_ios_url', blank=True), |
|
| 51 |
+ ), |
|
| 52 |
+ migrations.AddField( |
|
| 53 |
+ model_name='latestappinfo', |
|
| 54 |
+ name='latest_ios_version_code', |
|
| 55 |
+ field=models.IntegerField(default=0, help_text='\u6700\u65b0 iOS \u7248\u672c\u53f7', verbose_name='latest_ios_version_code'), |
|
| 56 |
+ ), |
|
| 57 |
+ migrations.AddField( |
|
| 58 |
+ model_name='latestappinfo', |
|
| 59 |
+ name='latest_ios_version_name', |
|
| 60 |
+ field=models.CharField(help_text='\u6700\u65b0 iOS \u7248\u672c\u540d', max_length=255, null=True, verbose_name='latest_ios_version_name', blank=True), |
|
| 61 |
+ ), |
|
| 62 |
+ ] |
@@ -23,9 +23,14 @@ def upload_path(instance, old_filename): |
||
| 23 | 23 |
|
| 24 | 24 |
|
| 25 | 25 |
class LatestAppInfo(CreateUpdateMixin): |
| 26 |
- latest_version = models.CharField(_(u'latest_version'), max_length=255, help_text=u'最新版本') |
|
| 27 |
- latest_app = models.FileField(_(u'latest_app'), upload_to=upload_path, blank=True, null=True, help_text=u'最新版 APP') |
|
| 28 |
- latest_url = models.URLField(_(u'latest_url'), max_length=255, blank=True, null=True, help_text=u'最新版 APP 链接') |
|
| 26 |
+ latest_adr_version_code = models.IntegerField(_(u'latest_adr_version_code'), default=0, help_text=u'最新安卓版本号') |
|
| 27 |
+ latest_adr_version_name = models.CharField(_(u'latest_adr_version_name'), max_length=255, blank=True, null=True, help_text=u'最新安卓版本名') |
|
| 28 |
+ latest_adr_app = models.FileField(_(u'latest_adr_app'), upload_to=upload_path, blank=True, null=True, help_text=u'最新版安卓 APP') |
|
| 29 |
+ latest_adr_url = models.URLField(_(u'latest_adr_url'), max_length=255, blank=True, null=True, help_text=u'最新版 APP 链接') |
|
| 30 |
+ |
|
| 31 |
+ latest_ios_version_code = models.IntegerField(_(u'latest_ios_version_code'), default=0, help_text=u'最新 iOS 版本号') |
|
| 32 |
+ latest_ios_version_name = models.CharField(_(u'latest_ios_version_name'), max_length=255, blank=True, null=True, help_text=u'最新 iOS 版本名') |
|
| 33 |
+ latest_ios_url = models.URLField(_(u'latest_ios_url'), max_length=255, blank=True, null=True, help_text=u'最新版 iOS 链接') |
|
| 29 | 34 |
|
| 30 | 35 |
class Meta: |
| 31 | 36 |
verbose_name = _('latestappinfo')
|
@@ -35,14 +40,18 @@ class LatestAppInfo(CreateUpdateMixin): |
||
| 35 | 40 |
return u'{0.pk}'.format(self)
|
| 36 | 41 |
|
| 37 | 42 |
@property |
| 38 |
- def final_latest_url(self): |
|
| 39 |
- return self.latest_url or u'{}{}'.format(settings.DOMAIN, self.latest_app and self.latest_app.url)
|
|
| 43 |
+ def final_latest_adr_url(self): |
|
| 44 |
+ return self.latest_adr_url or u'{}{}'.format(settings.DOMAIN, self.latest_adr_app and self.latest_adr_app.url)
|
|
| 40 | 45 |
|
| 41 | 46 |
@property |
| 42 | 47 |
def data(self): |
| 43 | 48 |
return {
|
| 44 |
- 'latest_version': self.latest_version, |
|
| 45 |
- 'latest_url': self.final_latest_url, |
|
| 49 |
+ 'latest_adr_version_code': self.latest_adr_version_code, |
|
| 50 |
+ 'latest_adr_version_name': self.latest_adr_version_name, |
|
| 51 |
+ 'latest_adr_url': self.final_latest_adr_url, |
|
| 52 |
+ 'latest_ios_version_code': self.latest_ios_version_code, |
|
| 53 |
+ 'latest_ios_version_name': self.latest_ios_version_name, |
|
| 54 |
+ 'latest_ios_url': self.latest_ios_url, |
|
| 46 | 55 |
} |
| 47 | 56 |
|
| 48 | 57 |
|
@@ -5,7 +5,7 @@ from django.http import JsonResponse |
||
| 5 | 5 |
from django.shortcuts import redirect |
| 6 | 6 |
|
| 7 | 7 |
from account.models import UserInfo |
| 8 |
-from operation.models import FeedbackInfo, LatestAppInfo, SplashInfo |
|
| 8 |
+from operation.models import FeedbackInfo, SplashInfo |
|
| 9 | 9 |
from utils.error.errno_utils import UserStatusCode |
| 10 | 10 |
from utils.error.response_utils import response |
| 11 | 11 |
from utils.redis.rapp import get_latest_app |
@@ -17,11 +17,26 @@ def upgrade_api(request): |
||
| 17 | 17 |
:param request: |
| 18 | 18 |
:return: |
| 19 | 19 |
""" |
| 20 |
+ latest_app = get_latest_app() |
|
| 21 |
+ |
|
| 22 |
+ if request.iOS: |
|
| 23 |
+ appinfo = {
|
|
| 24 |
+ 'latest_version_code': latest_app.get('latest_ios_version_code', ''),
|
|
| 25 |
+ 'latest_version_name': latest_app.get('latest_ios_version_name', ''),
|
|
| 26 |
+ 'latest_url': latest_app.get('latest_ios_url', ''),
|
|
| 27 |
+ } |
|
| 28 |
+ else: |
|
| 29 |
+ appinfo = {
|
|
| 30 |
+ 'latest_version_code': latest_app.get('latest_adr_version_code', ''),
|
|
| 31 |
+ 'latest_version_name': latest_app.get('latest_adr_version_name', ''),
|
|
| 32 |
+ 'latest_url': latest_app.get('latest_adr_url', ''),
|
|
| 33 |
+ } |
|
| 34 |
+ |
|
| 20 | 35 |
return JsonResponse({
|
| 21 | 36 |
'status': 200, |
| 22 | 37 |
'message': u'获取最新版信息成功', |
| 23 | 38 |
'data': {
|
| 24 |
- 'appinfo': get_latest_app(), |
|
| 39 |
+ 'appinfo': appinfo, |
|
| 25 | 40 |
}, |
| 26 | 41 |
}) |
| 27 | 42 |
|
@@ -79,4 +94,4 @@ def download_api(request): |
||
| 79 | 94 |
return redirect(settings.DOWNLOAD_WX_URL) |
| 80 | 95 |
if request.iOS: |
| 81 | 96 |
return redirect(settings.DOWNLOAD_IOS_URL) |
| 82 |
- return redirect(get_latest_app().get('latest_url', ''))
|
|
| 97 |
+ return redirect(get_latest_app().get('latest_adr_url', ''))
|
@@ -269,7 +269,8 @@ PAI2_HOME_MAX_ROWS = 400 # 首页照片最大数量, PAI2_HOME_PER_PAGE * PAI2_ |
||
| 269 | 269 |
|
| 270 | 270 |
# 下载页设置 |
| 271 | 271 |
DOWNLOAD_TMPL_PATH = os.path.join(BASE_DIR, 'page/templates/page/download.tmpl.html').replace('\\', '/')
|
| 272 |
-DOWNLOAD_PAGE_PATH = os.path.join(BASE_DIR, 'page/templates/page/download.html').replace('\\', '/')
|
|
| 272 |
+DOWNLOAD_ADR_PAGE_PATH = os.path.join(BASE_DIR, 'page/templates/page/adr_download.html').replace('\\', '/')
|
|
| 273 |
+DOWNLOAD_IOS_PAGE_PATH = os.path.join(BASE_DIR, 'page/templates/page/ios_download.html').replace('\\', '/')
|
|
| 273 | 274 |
|
| 274 | 275 |
# 下载设置 |
| 275 | 276 |
DOWNLOAD_WX_URL = '' |